/*- * See the file LICENSE for redistribution information. * * Copyright (c) 2002-2006 * Sleepycat Software. All rights reserved. * * $Id: ShortConfigParam.java,v 1.1 2006/05/06 09:01:32 ckaestne Exp $ */ package com.sleepycat.je.config; /** * A JE configuration parameter with an short value. */ public class ShortConfigParam extends ConfigParam { private static final String DEBUG_NAME = ShortConfigParam.class.getName(); private Short min; private Short max; ShortConfigParam(String configName, Short minVal, Short maxVal, Short defaultValue, boolean mutable, String description) { // defaultValue must not be null super(configName, defaultValue.toString(), mutable, description); min = minVal; max = maxVal; } /* * Self validate. Check mins and maxs. */ private void validate(Short value) throws IllegalArgumentException { if (value != null) { if (min != null) { if (value.compareTo(min) < 0) { throw new IllegalArgumentException (DEBUG_NAME + ":" + " param " + name + " doesn't validate, " + value + " is less than min of " + min); } } if (max != null) { if (value.compareTo(max) > 0) { throw new IllegalArgumentException (DEBUG_NAME + ":" + " param " + name + " doesn't validate, " + value + " is greater than max of " + max); } } } } public void validateValue(String value) throws IllegalArgumentException { try { validate(new Short(value)); } catch (NumberFormatException e) { throw new IllegalArgumentException (DEBUG_NAME + ": " + value + " not valid value for " + name); } } public String getExtraDescription() { StringBuffer minMaxDesc = new StringBuffer(); if (min != null) { minMaxDesc.append("# minimum = ").append(min); } if (max != null) { if (min != null) { minMaxDesc.append("\n"); } minMaxDesc.append("# maximum = ").append(max); } return minMaxDesc.toString(); } }